Superscalar processors achieve higher performance by executing multiple instructions concurrently and out-of-order. That is, instructions can be (and often are) processed out of the order that the instructions were programmed (or dispatched). Another important performance parameter for a processor is the manner in which it handles exceptions and interruptions. A conventional technique is referred to as “check pointing”, and involves the continual saving (storing) of processing states during the processing of instructions so that the processor may recover to a previous known good state following an exception or interruption. However, the memory overhead necessary for check pointing and the continual saving and restoring operations can significantly impact the overall performance of a processor.